/**
 * @ author: 汪孟苹
 */
define(["jquery","dg/datagride.common","dg/datagride.attention"],function($,$common,$attention){
	var quest = {};

	/**
	 * 数据处理: 该方法根据题型实际出发
	 * quest.formatData
	 *    1、不需要可以不写
	 * 	  2、若只有content需要处理数据，可以将contentFormat里的数据处理直接写在该方法里；
	 * 	  		quest.formatData = function(obj){
	 * 	  			// doing
	 * 	  			return obj;
	 * 	  		};
	 * 	  3、若content和head都需要处理数据，则quest.forma的typeof是对象object：
	 * 	  		quest.formatData = {
	 * 	  			"head": headFormat,
	 * 	  			"content": contentFormat
	 * 	  		};
	 * 	  		var headFormat = function(obj){};
	 * 	  		var contentFormat = function(obj){};
	 * 	   		注意：headFormat:返回处理后的head数据；
	 * 	   	 		  contentFormat:返回处理后的content数据；
	 */

	/**
	 * tpl模板
	 * quest.tpl
	 * 		1、若是组类的题型，quest.tpl的返回值得typeof是string，即非组题型里的tpl_label;
	 * 		2、若是非组类的题型，quest.tpl的返回值得typeof是object；
	 */
	var tpl_label = function(){
		return  '<script id="tpl_input_label" type="text/html">'+
				'	<div style="{{label.style}}">{{label.value}}</div>'+
				'</script>';
	}
	var tpl_input = function(){
		return '<script id="tpl_input_input" type="text/html">'+
				'	<div class="datagride-input validatebox" style="{{style}}" data-questionId="{{questionId}}" data-recordId="{{recordId}}" data-attentionType="{{attentionType}}" data-attention="{{attention}}">{{value}}</div>'+
				'</script>';
	}
	quest.tpl = function(){
		var tpl = {};
		tpl.label = tpl_label;
		tpl.input = tpl_input;
		return tpl;
	}

	/**
	 * 事件: 该方法根据题型实际出发
	 * quest.event
	 *    1、不需要可以不写
	 * 	  2、若只有content需要事件处理，可以将contentEvent里的事件处理直接写在该方法里；
	 * 	  		quest.event = function(params){
	 * 	  			// doing
	 * 	  		};
	 * 	  3、若content和head都需要事件处理，则quest.event的typeof是对象object：
	 * 	  		quest.event = {
	 * 	  			"head": headEvent,
	 * 	  			"content": contentEvent
	 * 	  		};
	 * 	  		var headEvent = function(params){};
	 * 	  		var contentEvent = function(params){};
	 * 	   		注意：headEvent:处理head里的事件；
	 * 	   	 		  contentEvent:处理content里的事件；
	 */
	quest.event = function(params){
		$(".datagride-input").unbind("click");
		$(".datagride-input").click(function(){
			var This = $(this);
			if( $(this).find("input").length == 0 ){
				var text = $(this).text();
				var width = $(this).width();
				var h = '<input type="text" class="form-control" style="width:'+ width +'px">';
				$(this).html(h);
				$(this).find("input").focus().val(text);
			}
			$(this).find("input").unbind("blur");
			$(this).find("input").blur(function(){
				//var questionId = $(this).parent().attr("data-questionId");
				//var recordId = $(this).parent().attr("data-recordId");
				//var value = $(this).val();
				This.html( $(this).val() );
				$attention.onChange( This );
			});
		});
	}

	return quest;
});